package pe.gob.osinergmin.interfase_siaf.dac.dao;

import java.util.List;

import pe.gob.osinergmin.interfase_siaf.dac.domain.Area;
import pe.gob.osinergmin.interfase_siaf.dac.domain.ControlCoa;
import pe.gob.osinergmin.interfase_siaf.dac.domain.Ejecutora;
import pe.gob.osinergmin.interfase_siaf.dac.domain.Expediente;
import pe.gob.osinergmin.interfase_siaf.dac.domain.ExpedienteIngreso;
import pe.gob.osinergmin.interfase_siaf.dac.domain.MaestroDetalle;
import pe.gob.osinergmin.interfase_siaf.dac.domain.Mes;

public interface MaestroDetalleDao {
	
    List<MaestroDetalle> listarMaestroDetTipoOpe();
	
	List<MaestroDetalle> listarMaestroDetTipoOpeParameter(MaestroDetalle maestroDet);
	
	List<MaestroDetalle> listarMaestroDetalleModCom();
	
	List<MaestroDetalle> listarMaestroDetModComParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetTipoId();
	
	List<MaestroDetalle> listarMaestroDetTipoIdParameter(MaestroDetalle maestroDet);

    List<MaestroDetalle> listarMaestroDetTPago();
	
	List<MaestroDetalle> listarMaestroDetTPagoParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetTRecurs();
	
	List<MaestroDetalle> listarMaestroDetTRecursParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetTCompro();
	
	List<MaestroDetalle> listarMaestroDetTComproParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetMoneda();
	
	List<MaestroDetalle> listarMaestroDetMonedaParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetTipoDepos();
	
	List<MaestroDetalle> listarMaestroDetTipoDeposParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetConDesp();
	
	List<MaestroDetalle> listarMaestroDetConDespParameter(MaestroDetalle maestroDet);
	
    List<MaestroDetalle> listarMaestroDetTipoPro();
	
	List<MaestroDetalle> listarMaestroDetTipoProParameter(MaestroDetalle maestroDet); 

	int verificarAnoEje(Ejecutora e) throws Exception;	
	
	int verificarSecEje(Ejecutora e) throws Exception;	 
    
    int verificarTipoOpe(MaestroDetalle m) throws Exception;  
    
    int verificarModComp(MaestroDetalle m) throws Exception;	
	
	int verificarTPago(MaestroDetalle m) throws Exception ;
	
	int verificarTRecurs(MaestroDetalle m) throws Exception ;	
	
	int verificarTCompro(MaestroDetalle m) throws Exception ;	
	
	int verificarMoneda(MaestroDetalle m) throws Exception ;
	
	int verificarMesEje(Mes m) throws Exception ;		
	
	int verificarSecArea(Area a) throws Exception;
	
	int verificarintfExp(Expediente e) throws Exception;
	
	int verificarSecuencialExpe(ExpedienteIngreso e) throws Exception;
	
	int verificarCorrelativExpe(ExpedienteIngreso e) throws Exception;
	
	List<ControlCoa> verificarEstadoCierre(ControlCoa c) throws Exception;
	
	
}
